package com.nerve.cloudoffice.service;

import com.nerve.cloudoffice.web.model.TaskModel;

/**
 * @project: cloudOffice
 * @file: TaskService.java
 * @package: com.nerve.cloudoffice.service
 * @description:
 *
 * @author: 集成显卡	1053214511@qq.com
				IBM GDC, zengxm@cn.ibm.com
 * @date&time: 2013-8-3
 * @change log:
 */
public interface TaskService {
	/**修改任务进度*/
	public static final int STATUS = 0;
	
	/**修改任务的重要等级*/
	public static final int LEVEL = 1;
	
	/**申请删除一个任务*/
	public static final int TRASH = 2;
	
	/**修改任务的备注*/
	public static final int MESSAGE = 3;
	
	public static final String TODAY = "day";
	public static final String WEEK = "week";
	public static final String MONTH = "month";
	public static final String YEAR = "year";
	
	public void save(TaskModel model) throws Exception;
	
	public void accept(TaskModel model) throws Exception;
	
	/**
	 * @method name: trash
	 * @description: 删除一个任务（在审核删除申请后才会执行）
	 * @return type: void
	 *	@param model
	 *	@throws Exception
	 */
	public void trash(TaskModel model) throws Exception;
	
	/**
	 * @method name: applyTrash
	 * @description: 
	 * 	更新一个任务，可以更新的属性：
	 * 		任务进度（status）
	 * 		任务等级（level）
	 * 		申请删除任务（trash）
	 * 		任务备注（message）
	 * 		通过删除申请
	 * 
	 * 以updateType来标识更新类型
	 * updateValue为更新内容	
	 * @return type: void
	 *	@param model
	 *	@throws Exception
	 */
	public void updateTask(TaskModel model) throws Exception;
	
	/**
	 * @method name: updateBatch
	 * @description: 对一个任务进行多处修改
	 * @return type: void
	 *	@param model
	 *	@throws Exception
	 */
	public void updateBatch(TaskModel model) throws Exception;
	
	public void list(TaskModel model) throws Exception;
	
	public void listTrash(TaskModel model) throws Exception;
}
